<?php
class UsersController extends AppController {

	var $name = 'Users';
	
	function index($page = 1,$perpage = 5) {
//		trường hợp nếu số trang ko fai là kiểu số hoặc nhỏ hơn 0 thì trở về trang 1			
		if (is_int($page)) $page = 1;
		
		$count = $this->User->find('count', array('conditions' => 'User.status <> 3'));
		$this->set('countAll', $count);			
		$this->set('perpage', $perpage);
		$countPage = $this->findPages($count,$perpage);
		if ($page > $countPage) $page = $countPage;
		$this->set('curpage', $page);
		$this->set('countPage', $countPage);

		$this->set('users', $this->User->find(
								'all', 
								array(
									'conditions' => 'User.status <> 3',
									'limit' => $perpage,
									'page' => $page,
								)));
	}

	function add() {
		$this->set('employees', $this->User->Employee->find(
									'all', 
									array(
										'conditions' => array('Employee.status <> 3','Employee.id not in (select employee_id from Users where id <> 3)'),
										'order' => 'Employee.lastname'
									)));
		if (!empty($this->data)) {
			$this->data['User']['password'] = md5($this->data['User']['password']);
			$this->User->create();
			if ($this->User->save($this->data)) {
				$last_insert_id = $this->User->id;
				$this->Session->setFlash('Thêm mới thành công #'.$last_insert_id);
				$this->redirect(array('action'=>'index'), null, true);
			} else {
				$this->Session->setFlash('<span style="font-size: 10pt"><strong>Thêm mới nhân sự không thành công. Hãy thử lại.</strong></span>');
			}
		}
	}

	function edit($id = null) {
		if (!$id) {
			$this->Session->setFlash('Không tìm thấy người dùng mà bạn vừa chọn');
			$this->redirect(array('action'=>'index'), null, true);
		}
		if (!empty($this->data)) {
//			Kiểm tra trường status có được check vào hay không?			
			if (array_key_exists('status',$this->data['User'])) {
				if ($this->data['User']['status'] == 'on') {				
					$this->data['User']['status'] = 1;
				} else {
					$this->data['User']['status'] = 0;					
				}
			} else {
				$this->data['User']['status'] = 0;
			}
//			Kiểm tra password có giá trị hay không?
//			Nếu password có ký tự space thì bỏ ký tự space và không tính nó vào trong password
//			Trường hợp này tùy chọn
			if (trim($this->data['User']['password']) != "")
			{
				$this->data['User']['password'] = md5(trim($this->data['User']['password']));
			}
			
			if ($this->User->save($this->data)) {
				$this->Session->setFlash('Cập nhật thành công');
				$this->redirect(array('action'=>'index'), null, true);
			} else {
				$this->set('employees', $this->User->Employee->find(
							'all', 
							array(
								'conditions' => array('Employee.status <> 3','(Employee.id not in (select employee_id from Users where status <> 3) or (Employee.id = '.$this->data['User']['employee_id'].'))'),
								'order' => 'Employee.lastname'
							)));
				$this->Session->setFlash('Cập nhật thông tin người dùng không thành công.  Hãy thử lại.');
			}
		} else {
			$this->data = $this->User->find(array('User.id' => $id));
			$this->set('employees', $this->User->Employee->find(
							'all', 
							array(
								'conditions' => array('Employee.status <> 3','(Employee.id not in (select employee_id from Users where status <> 3) or (Employee.id = '.$this->data['User']['employee_id'].'))'),
								'order' => 'Employee.lastname'
							)));
		}
	}

	function login(){

	}
	
	function logout(){
		$this->Session->del('Permissions');
		$this->redirect($this->Auth->logout());
	}

	function profile(){
		$this->Session->setFlash("#".$this->Auth->user('id'));
	}
}
?>
